1. Field of the Invention
The present invention relates, in general, to data storage systems and storage in distributed or networked environments, and, more particularly, to a method and system for configuring data storage pools for effective operation for particular implementations or applications.
2. Relevant Background
Within the data storage industry, it is becoming more and more common to network and share data storage devices such as disk drive arrays, tape drive devices, and the like. Data from a number of one or more client devices and software applications being run by such devices is typically stored on or more of the networked data storage devices. In contrast, one client application may be large requiring a number of data storage devices be available or pooled to provide adequate storage capacity and availability for the application. With the growing use of networked data storage, numerous challenges have arisen including how to manage the data storage network so as to most effectively utilize the available storage capacity and devices while providing desired retrieval speed and data availability to the client applications or applications utilizing shared or pooled storage.
In general, a storage pool is a collection of storage volumes that are associated with a class of storage device and typically, with one media type, such as tape, disk, and the like. A storage volume is the basic unit of storage, e.g., allocated space on a disk or on a tape cartridge. In many networked storage systems, a server with data management software uses storage volumes to store data in backed-up, archived, or space-managed files and storage pools can be arranged in a storage pool hierarchy in which each pool is used for differing purposes such as an archive pool, a backup pool, a primary storage pool, a copy storage pool, or other such pools. On another level, the storage pools and the volumes within the pools may be separated into storage libraries.
The use of storage pools within a data storage system can significantly increase the efficient use of the available data storage components and available space, but defining storage pools can be a difficult and time consuming task. In practice, a data storage system is shipped or set up with storage management software but with no storage pools. The customer or an information technology specialist then must operate the storage management software to define and configure the data storage system to support one or more storage pools and volumes within the pool. Some companies within the data storage system ship systems with a default definition of a storage pool and volumes within the pool. However, the default definition is typically selected to provide performance that is acceptable across a broad range of implementations or applications but not particularly well-suited for any of the implementations or applications, which results in inefficiencies such as wasted capacity, undesirable response times, and other performance degradations.
The storage management software can be operated, such as via an administrative command line or an administrative user interface, to change the defaults for the storage pool but due to the number of parameters involved this is a daunting task that is typically best left to personnel very familiar with the data storage system. For example, initial configuration of a storage pool may require that the following parameters be set or defined: pool name, pool type, device class for inclusion in the pool, maximum file size, access modes for the pool (such as read/write, read only, and other access modes), data format, overflow location or next storage pool identification, scratch volumes, cache, migration delay, migration thresholds, migration processes, collocation, reclamation threshold, cyclic redundancy check, and other parameters. In addition to the sheer number of parameters that must be set, proper configuration of a storage pool requires that the interactions of parameters be understood (e.g., how does modifying one parameter affect other operating parameters) and that restrictions be understood (e.g., some parameters cannot be modified in some systems, some functions or parameters are not supported by some storage systems, and/two parameters may be intertwined such that modification of one requires modification of another).
Hence, there remains a need for an improved method and system that enables users of networked and other data storage systems to readily define storage pools within the systems that operate effectively within the data storage system and that support the users' applications or computing environment.